<?php
/**
 ***********************************************************************************************************************
 * 适配旧版数据库写法
 * @author llq
 ***********************************************************************************************************************
 */
namespace artisan\db;
use artisan\config;

/**
 * Class MySQLiAdapter
 * @package artisan\db
 */
class MySQLiAdapter
{
    /**
     *  @var null|array
     */
    private static $dbConfigs = null;
    private static $dbAdapterConfigs = null;
    /**
     * 兼容旧版
     *
     * @param string $alias 数据库连接别名
     * @param bool $useSlave 是否使用从库
     * @return MySQLiAdapterAR
     */
    public function getConnect($alias, $useSlave = false)
    {
        // 转换alias
        $alias = strtolower((string)$alias);
        $real_alias = '';
        self::$dbConfigs === null && self::$dbConfigs = config::get('db') ?: [];
        if(array_key_exists($alias, self::$dbConfigs)) {
            $real_alias = $alias;
        } else {
            self::$dbAdapterConfigs === null && self::$dbAdapterConfigs = config::get('db_adapter') ?: [];
            foreach((array)self::$dbAdapterConfigs as $db => $val) {
                if(is_array($val) && in_array($alias, $val)) {
                    $real_alias = $db;
                }
            }
        }
        // 兼容旧版主从选择 默认读主库 只有强制读从库才读从库
        return MySQLiAdapterAR::connect($real_alias, !$useSlave);
    }
}